The present invention relates to computer storage, and more specifically, to solid-state storage management.
Solid-state drives (SSDs) are data storage devices that use solid-state memory to store persistent data. SSDs are most commonly connected to a host computer via a high speed link. SSDs usually implement some form of management of the storage medium, i.e., the underlying solid-state storage devices. Such management usually includes translating from a logical address space into a physical address space. Many SSDs use “not-and” (NAND) based flash memory which must be erased in blocks before being rewritten with new data. Address translation is commonly used with NAND flash devices due to the difficulty of erase operations.
In some contemporary systems that use NAND flash devices, all of the management functionality is performed on the host computer. In these systems, the address translation table is placed in the main memory of the host computer such that during a read operation the host computer determines the physical address corresponding to the logical read address (address translation). During a write operation, the host computer decides the physical write address to which the data is written (physical data placement), and logs the logical-to-physical address correspondence in the address translation table. A shortcoming of this approach is that it requires the expenditure of computational cycles and main memory at the host in order to perform the address translation. Thus, it is well-suited for computer systems with large amounts of dynamic random access memory (DRAM) and processing capabilities, and is not well suited for lower cost systems with limited amounts of DRAM and processing capabilities, or for large-scale data-centric systems with high ratios between storage and system memory.
Other contemporary systems place all of the management functionality on the physical SSD board. In this case, SSD does both data placement and address translation. A shortcoming of this approach is that it suffers in terms of cost/performance because it does not leverage the host processor and instead requires another processor to be incorporated into the SSD.